package com.flong.juc.charter1;

/**
 * @Author:liangjl
 * @Date: 2020/5/23-10:19
 * @Eamil:jilongliang@sina.com
 * @Description: 1、存在要给对象，该对象有一个int类型的成员变量counter,该成员变量初始值为0
 * 2、创建2个对象，其中一个线程该对象的成员变量counter增1，另外一个线程对象该对象的成员变量减一
 * 3、输出该对象成员变量counter每次变化后的值
 * 4、最终输出的结果为：1010101010..
 */
public class MyObject {
    private int counter;

    public synchronized void increase() {
        if (counter != 0) {
            try {
                wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

        counter++;

        System.out.println(counter);

        //唤醒通知其他线程
        notify();
        ;
    }

    public synchronized void decrease() {
        if (counter == 0) {
            try {
                wait();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        counter--;
        System.out.println(counter);
        notify();
    }


}
